namespace ext.data
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <definedin>src\data\DirectProxy.js</definedin>
	/// <definedin>src\data\DirectProxy.js</definedin>
	[ScriptName("DirectProxy")]
	[ScriptNamespace("Ext.data")]
	[Imported()]
	public partial class DirectProxy : ext.data.DataProxy
	{
		
		#region Constructors
		public DirectProxy(ext.data.DirectProxy_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public DirectProxy()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// Defaults to undefined. A list of params to be executed
		/// server side. Specify the params in the order in which they must be executed on the server-side
		/// as either (1) an Array of String values, or (2) a String of params delimited by either whitespace,
		/// comma, or pipe. For example,
		/// any of the following would be acceptable: 
		/// paramOrder: [&apos;param1&apos;,&apos;param2&apos;,&apos;param3&apos;]
		/// paramOrder: &apos;param1 param2 param3&apos;
		/// paramOrder: &apos;param1,param2,param3&apos;
		/// paramOrder: &apos;param1|param2|param&apos;
		/// </summary>
		/// <htmlSummary>
		/// Defaults to &lt;tt&gt;undefined&lt;/tt&gt;. A list of params to be executed
		/// server side. Specify the params in the order in which they must be executed on the server-side
		/// as either (1) an Array of String values, or (2) a String of params delimited by either whitespace,
		/// comma, or pipe. For example,
		/// any of the following would be acceptable:&lt;pre&gt;&lt;code&gt;
		/// paramOrder: [&apos;param1&apos;,&apos;param2&apos;,&apos;param3&apos;]
		/// paramOrder: &apos;param1 param2 param3&apos;
		/// paramOrder: &apos;param1,param2,param3&apos;
		/// paramOrder: &apos;param1|param2|param&apos;
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		[ScriptName("paramOrder")]
		public ext.auto.System_String_Or_System_Array ParamOrder;
		
		/// <summary>
		/// Send parameters as a collection of named arguments (defaults to true). Providing a
		/// {@link #paramOrder} nullifies this configuration.
		/// </summary>
		/// <htmlSummary>
		/// Send parameters as a collection of named arguments (defaults to &lt;tt&gt;true&lt;/tt&gt;). Providing a
		/// &lt;tt&gt;{@link #paramOrder}&lt;/tt&gt; nullifies this configuration.
		/// </htmlSummary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		[ScriptName("paramsAsHash")]
		public bool ParamsAsHash;
		
		/// <summary>
		/// Function to call when executing a request. directFn is a simple alternative to defining the api configuration-parameter
		/// for Store&apos;s which will not implement a full CRUD api.
		/// </summary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		[ScriptName("directFn")]
		public System.Delegate DirectFn;
		#endregion
		
		#region Methods
		/// <summary>Callback for read actions</summary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		/// <param name="action">[Ext.data.Api.actions.create|read|update|destroy]</param>
		/// <param name="trans">The request transaction object</param>
		/// <param name="result">Data object picked out of the server-response.</param>
		/// <param name="res">The server response</param>
		[ScriptName("onRead")]
		public void OnRead(string action, object trans, object result, object res)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Callback for write actions</summary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		/// <param name="action">[{@link Ext.data.Api#actions create|read|update|destroy}]</param>
		/// <param name="trans">The request transaction object</param>
		/// <param name="result">Data object picked out of the server-response.</param>
		/// <param name="res">The server response</param>
		/// <param name="rs">The Store resultset associated with the action.</param>
		[ScriptName("onWrite")]
		public void OnWrite(string action, object trans, object result, object res, ext.data.RecordClass rs)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>DirectProxy implementation of {@link Ext.data.DataProxy#doRequest}</summary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		/// <param name="action">The crud action type (create, read, update, destroy)</param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// &lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;A function to be called after the request.
		/// The &lt;tt&gt;callback&lt;/tt&gt; is passed the following arguments:&lt;ul&gt;
		/// &lt;li&gt;&lt;tt&gt;r&lt;/tt&gt; : Ext.data.Record[] The block of Ext.data.Records.&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;options&lt;/tt&gt;: Options object from the action request&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;success&lt;/tt&gt;: Boolean success indicator&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>DirectProxy implementation of {@link Ext.data.DataProxy#doRequest}</summary>
		/// <definedin>src\data\DirectProxy.js</definedin>
		/// <param name="action">The crud action type (create, read, update, destroy)</param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// &lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;A function to be called after the request.
		/// The &lt;tt&gt;callback&lt;/tt&gt; is passed the following arguments:&lt;ul&gt;
		/// &lt;li&gt;&lt;tt&gt;r&lt;/tt&gt; : Ext.data.Record[] The block of Ext.data.Records.&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;options&lt;/tt&gt;: Options object from the action request&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;success&lt;/tt&gt;: Boolean success indicator&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass[] rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
